home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Arsenal
/
OS2 Arsenal v1.0 (Disc 1)(Arsenal Computer).ISO
/
os2_inet
/
pgmg20c1.exe
/
PGMGCSD.DOC
< prev
next >
Wrap
Text File
|
1994-06-13
|
13KB
|
428 lines
*************************************
********* UN57887 CORRECTIVE SERVICE DISKETTE *********
*************************************
TCP/IP 2.0 for OS/2 Corrective Service Diskette Information
This README file for the corrective service diskette (CSD)
reflects new and changed functions for TCP/IP 2.0 for OS/2,
and corrections to the information. This CSD applies to the
Programmer's Toolkit only.
1.0 TCP/IP 2.0 for OS/2 Programmer's Toolkit
Topics included in this CSD are:
1.1 Installing this CSD
1.2 Previous CSD Information
1.3 Obtaining CSDs Electronically
2.0 Functions Changed
2.1 Programming Support
2.1.1 REXX File Transfer Protocol API
2.1.2 REXX Socket Support
2.2 New FTP API Calls
2.2.1 ftptrcoff() Stops tracing
2.2.2 ftptrcon() Starts tracing
2.2.3 ftpver() Returns the version number
2.3 Packet Size Restriction
2.4 Performance Considerations
3.0 APAR Fixes
----------------------------------------------------------------
1.1 Installing this CSD
To install this CSD from a diskette at your workstation,
insert the diskette into your A: drive and enter:
A:>TCPINST
---------------------------------------------------------------------
1.2 Previous CSD Information
This CSD incorporates the corrective service and new functions
that were previously released in CSD UN54155. Please see the file
README.PRG in the <tcpip>\DOC directory for a description of the
functions that were originally released in UN54155.
----------------------------------------------------------------
1.3 Obtaining CSDs Electronically
You can obtain Corrective Service Diskettes (CSDs)
electronically by:
o Using FTP to access SOFTWARE.WATSON.IBM.COM as Anonymous.
NOTE: Fixes for TCP/IP for OS/2 are located in the
pub\tcpip\os2 directory.
o Establishing a modem connection to the NCSBBS bulletin
board at 1-919-517-0001.
NOTE: Set your modem settings to: none,8,1.
The latest CSDs for TCP/IP Version 2.0 for OS/2 are shown
in the following table:
+----------------------------+---------------------------+
| KIT NAME | PACKAGE NAME |
+----------------------------+---------------------------+
| Applications Kit | APP20CSD.PKG |
+----------------------------+---------------------------+
| Base Kit | TCP20CSD.PKG |
+----------------------------+---------------------------+
| Domain Name Server Kit | DNS20CSD.PKG |
+----------------------------+---------------------------+
| DOS/Windows Access Kit | DOS20CSD.PKG |
+----------------------------+---------------------------+
| Extended Networking Kit | XNT20CSD.PKG |
+----------------------------+---------------------------+
| Network File System Kit | NFS20CSD.PKG |
+----------------------------+---------------------------+
| OSF/Motif Kit | MOT20CSD.PKG |
+----------------------------+---------------------------+
| Programmer's Toolkit | PGM20CSD.PKG |
+----------------------------+---------------------------+
| X Window System Client Kit | XCL20CSD.PKG |
+----------------------------+---------------------------+
| X Window System Server Kit | PMX20CSD.PKG |
+----------------------------+---------------------------+
*************************************************
******** UN57887 CORRECTIVE SERVICE DISKETTE STARTS HERE *********
*************************************************
----------------------------------------------------------------
2.0 Functions Changed
None.
----------------------------------------------------------------
2.1 Programming Support
The REXX File Transfer Protocol API and the REXX Socket
Support are included in the Base Kit CSD.
2.1.1 REXX File Transfer Protocol API
The REXX File Transfer Protocol (FTP) Application Program
Interface (API) package provides access to the OS/2 TCP/IP FTP
API's. It is assumed you are familiar with the basic FTP. The
REXX FTP API function names are similar to the FTP subcommands.
For more information and installation instructions,
type: view RXFTP at an OS/2 command line after installing
the Base Kit CSD or select the REXX FTP API icon in the
TCP/IP folder.
2.1.2 REXX Socket Support
The REXX Socket Support package provides access to the OS/2
TCP/IP socket API's. It is assumed you are familiar with the
basic socket APIs and that you can reference the OS/2 specific
ones. For more information and installation instructions,
type: view RXSOCKET at an OS/2 command line after installing
the Base Kit CSD or select the REXX Sockets API icon in the
TCP/IP folder.
2.2 New FTP API Calls
ftptrcoff() Stops tracing
ftptrcon() Starts tracing
ftpver() Returns the version number
2.2.1 >>>>>>>>>>>>>>>>>>> ftptrcoff() <<<<<<<<<<<<<<<<<<<
ftptrcoff() Call
Syntax for ftptrcoff()
#include <ftpapi.h>
int ftptrcoff(void)
Parameters
none
Return Values
The ftptrcoff() always return a value of 0.
Description
The ftptrcoff() closes the trace file and stops
tracing of the command and reply sequences sent
over the control connection between the local
and remote hosts.
Example
int rc;
rc = ftptrcoff();
2.2.2 >>>>>>>>>>>>>>>>>>>> ftptrcon() <<<<<<<<<<<<<<<<<<<
ftptrcon() Call
Syntax for ftptrcon()
#include <ftpapi.h>
int ftptrcon(fileSpec, mode)
char *fileSpec;
int mode;
Parameters
fileSpec Identifies the name of the trace file.
mode Specifies the trace mode as overwrite or append.
M_OVERLAY - trace data overwrites previous
information
M_APPEND - trace data appends to previous
information
Return Values
There are three possible return values for ftptrcon():
0 when successful
TRCMODE indicates the value set into mode was invalid
TRCOPEN indicates the trace file could not be opened
Description
The ftptrcon() call opens the trace file specified and
starts tracing of the command and reply sequences
sent over the control connection between the local
and remote hosts. The trace file can be written
over or appended to.
No notification is provided if writing of trace data
fails.
Telnet command and reply sequences are not traced
nor are command and reply sequences between the
local host and a proxy host.
Example
To write the trace data into a file named api.trc
in the C:\WORK directory, use:
int rc;
rc = ftptrcon("c\\work\\api.trc", M_OVERLAY);
If the file already existed, the new trace data
overwrites the previous trace data (overlay mode).
2.2.3 >>>>>>>>>>>>>>>>>>>> ftpver() <<<<<<<<<<<<<<<<<<<
ftpver() Call
Syntax for ftpver()
#include <ftpapi.h>
int ftpver(buf, buflen)
char *buf;
int buflen;
Parameters
buf Identifies the buffer to store the version
string.
buflen Specifies the length of the buffer.
Return Values
0 when successful
-1 when the complete version string could not be
copied because the buffer length was too small.
Description
The ftpver() call stores the string containing the
FTP API version. The string is truncated to fit into
the buffer if it is longer than the buffer length.
The returned string is always null-terminated.
Example
int rc;
rc = ftpver(verBuf, bufLen);
After the ftpver() call, the buffer contains the
following: 2.0.1
2.3 Packet Size Restriction
The packet size for sending and receiving data is limited
to 32K of data. When the data sent or received is
greater that 32K, the programmer must divide up the data
so that no packet exceeds 32K.
This restriction applied to all socket calls.
For example, to handle this restriction for the send()
function:
int SendData(int socket, void *buffer, int len, int flags)
{
int rc;
char *temp = (char *)buffer;
int templen = len;
int errno = 0;
do {
/* Never send more than 32K */
rc = send(socket, temp, min(templen,0xfff), flags);
if(rc > 0) {
temp += rc;
templen -= rc;
} /* endif */
} while (rc > 0) && templen); /*enddo */
if(templen) { /* If there is still data, then */
if(rc) errno = -sock_errno(); /* 1. there was an error */
else errno = EPIPE; /* 2. the connection was closed */
} /* endif */
return(errno);
}
2.4 Performance Considerations
The TCP/IP device drivers will only accept 16-bit aligned
pointers. The sockets DLL deals with this problem by
allocating temporary memory and copying the corresponding
data. To prevent this additional overhead, do not call
the socket DLL with pointers that cross a 64K boundary.
For calls that do not send or receive data, this is
generally not a problem. It is suggested that the
programmer allow the sockets DLL to deal with 16-bit
boundaries in these situations.
For send and receive type calls, the programmer should
avoid passing pointers that cross 64K boundaries to
prevent the sockets DLL from copying the data.
For example, to handle this for the send() function:
int SendData(int socket, void *buffer, int len, int flags)
{
int rc;
char *temp = (char *)buffer;
int templen = len;
int errno = 0;
do {
/* Never send across a 64K boundary, and */
/* never send more than 32K */
rc = send(socket, temp, min(min(templen,0xffff-(temp&0xffff)+1), 0x7fff), flags);
if(rc > 0) {
temp += rc;
templen -= rc;
} /* endif */
} while (rc > 0) && templen); /*enddo */
if(templen) { /* If there is still data, then */
if(rc) errno = -sock_errno(); /* 1. there was an error */
else errno = EPIPE; /* 2. the connection was closed */
} /* endif */
return(errno);
}
----------------------------------------------------------------
3.0 APAR Fixes
The following is a list of APARs fixed in this CSD.
+---------+-------------+-------------------------------+
| APAR | MODULES | DESCRIPTION |
| NUMBER | AFFECTED | |
+---------+-------------+-------------------------------+
| PN47687 | SO32DLL.DLL | Fixed: All calls to SO32DLL |
| | TCP32DLL.DLL| and TCP32DLL are now |
| | | reentrant. |
+---------+-------------+-------------------------------+
| PN50502 | FTPAPI.DLL | Fixed: Proper return code |
| | | for FTPPUT() with AS/400 |
| | | member files. |
+---------+-------------+-------------------------------+
| PN50587 | RPC.DLL | Fixed: General Protection |
| | | Failure occurs when executing |
| | | SVC GETARGS(). |
+---------+-------------+-------------------------------+
| PN51060 | RPCHOUT | Fixed: RPCGEN generates a |
| | | syntactically incorrect .H |
| | | file. |
+---------+-------------+-------------------------------+
The following APAR was fixed in CSD UN54155. This
change is included in this CSD as well.
+---------+-------------+-------------------------------+
| PN50077 | PRCGEN.EXE | Fixed: |
| | SNMP_DPI.H | IOCTL(SIOCADDRT/SIOCDELRT) did|
| | SOCKET.H | not work when linking to |
| | SO32DLL.LIB | 32-bit dll |
+---------+-------------+-------------------------------+
--------------------------- End of Document --------------------